<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.10"/>
<title>scuwdt: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">scuwdt
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.10 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li class="current"><a href="index.html"><span>Overview</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="globals.html"><span>APIs</span></a></li>
      <li><a href="files.html"><span>File&#160;List</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">scuwdt Documentation</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>The Xilinx SCU watchdog timer driver (<a class="el" href="struct_x_scu_wdt.html" title="The XScuWdt driver instance data. ">XScuWdt</a>) supports the Xilinx SCU private watchdog timer hardware.The <a class="el" href="struct_x_scu_wdt.html" title="The XScuWdt driver instance data. ">XScuWdt</a> driver supports the following features:</p><ul>
<li>Watchdog mode</li>
<li>Timer mode</li>
<li>Auto reload (timer mode only)</li>
</ul>
<p>The watchdog counter register is a down counter and starts decrementing when the watchdog is started. In watchdog mode, when the counter reaches 0, the Reset flag is set in the Reset status register and the WDRESETREQ pin is asserted, causing a system reset. The Reset flag is not reset by normal processor reset and is cleared when written with a value of 1. This enables the user to differentiate a normal reset and a reset caused by watchdog time-out. The user needs to call <a class="el" href="group__scuwdt__v2__1.html#ga9487e2c385d8dc9cf5f1f27539ca079f" title="Re-start the watchdog timer. ">XScuWdt_RestartWdt()</a> periodically, to avoid the watchdog from being timed-out.</p>
<p>The IsWdtExpired function can be used to check if the watchdog was the cause of the last reset. In this situation, call Initialize then call IsWdtExpired. If the result is true, watchdog timeout caused the last system reset. The application then needs to clear the Reset flag.</p>
<p>In timer mode, when the counter reaches 0, the Event flag is set in the Interrupt status register and if interrupts are enabled, interrupt ID 30 is set as pending in the interrupt distributor. The IsTimerExpired function is used to check if the watchdog counter has decremented to 0 in timer mode. If auto-reload mode is enabled, the Counter register is automatically reloaded from the Load register.</p>
<p><b> Initialization and Configuration </b></p>
<p>The device driver enables higher layer software (e.g., an application) to communicate with the Watchdog Timer.</p>
<p><a class="el" href="group__scuwdt__v2__1.html#ga1fee56fc3ec3c8b003e6ae0528703b1c" title="Initialize a specific watchdog timer instance/driver. ">XScuWdt_CfgInitialize()</a> API is used to initialize the Watchdog Timer. The user needs to first call the <a class="el" href="group__scuwdt__v2__1.html#ga899e316b67b7eab6cec1f5b99df25e4d" title="Lookup the device configuration based on the unique device ID. ">XScuWdt_LookupConfig()</a> API which returns the Configuration structure pointer which is passed as a parameter to the <a class="el" href="group__scuwdt__v2__1.html#ga1fee56fc3ec3c8b003e6ae0528703b1c" title="Initialize a specific watchdog timer instance/driver. ">XScuWdt_CfgInitialize()</a> API.</p>
<p><b>Interrupts</b></p>
<p>The SCU Watchdog Timer supports interrupts in Timer mode.</p>
<p>This driver does not provide a Interrupt Service Routine (ISR) for the device. It is the responsibility of the application to provide one if needed. Refer to the interrupt example provided with this driver for details on using the Timer in interrupt mode.</p>
<p><b> Virtual Memory </b></p>
<p>This driver supports Virtual Memory. The RTOS is responsible for calculating the correct device base address in Virtual Memory space.</p>
<p><b> Threads </b></p>
<p>This driver is not thread safe. Any needs for threads or thread mutual exclusion must be satisfied by the layer above this driver.</p>
<p><b> Asserts </b></p>
<p>Asserts are used within all Xilinx drivers to enforce constraints on argument values. Asserts can be turned off on a system-wide basis by defining, at compile time, the NDEBUG identifier. By default, asserts are turned on and it is recommended that users leave asserts on during development.</p>
<p><b> Building the driver </b></p>
<p>The <a class="el" href="struct_x_scu_wdt.html" title="The XScuWdt driver instance data. ">XScuWdt</a> driver is composed of several source files. This allows the user to build and link only those parts of the driver that are necessary.</p>
<p><br />
<br />
</p>
<p>NOTE: The watchdog timer is not a part of the snoop control unit as indicated by the prefix "scu" in the name of the driver. It is an independent module in APU.</p>
<pre>
MODIFICATION HISTORY:</pre><pre>Ver   Who Date     Changes
----- --- -------- ---------------------------------------------
1.00a sdm 01/15/10 First release
1.02a  sg 07/17/12 Included xil_assert.h for CR 667947. This is an issue
	     when the xstatus.h in the common driver overwrites
	     the xstatus.h of the standalone BSP during the
	     libgen.
2.1 	sk  02/26/15 Modified the code for MISRA-C:2012 compliance.
</pre> </div></div><!-- contents -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
